Routes হলো CodeIgniter-এ এমন একটি সিস্টেম, যা ইউজারের রিকোয়েস্ট করা URL কে নির্ধারিত কন্ট্রোলার এবং মেথড-এর সাথে সংযুক্ত করে। এটি URL গুলোকে আরও রিডেবল, SEO-বান্ধব, এবং কাস্টমাইজযোগ্য করতে ব্যবহৃত হয়। CodeIgniter-এ Routes কনফিগারেশন খুবই সহজ এবং শক্তিশালী।
Routes ফাইল app/Config/Routes.php
এ সংরক্ষিত থাকে। CodeIgniter প্রতিটি URL কে একটি নির্দিষ্ট কন্ট্রোলার এবং মেথডের সাথে সংযুক্ত করতে এই ফাইল ব্যবহার করে।
CodeIgniter একটি ডিফল্ট Route ব্যবহার করে, যা ওয়েলকাম পেজ প্রদর্শন করে:
$routes->get('/', 'Home::index');
/
: URL এর রুট অংশ নির্দেশ করে।'Home::index'
: Home কন্ট্রোলারের index() মেথডকে নির্দেশ করে।Routes.php
ফাইল খোলাapp/Config/Routes.php
ফাইলটি খুলুন এবং প্রয়োজনীয় Route কনফিগারেশন যুক্ত করুন।
Route কনফিগার করতে $routes
অবজেক্ট ব্যবহার করা হয়।
GET রিকোয়েস্টের জন্য একটি Route:
$routes->get('about', 'Pages::about');
about
: URL।Pages::about
: Pages কন্ট্রোলারের about() মেথড।POST রিকোয়েস্টের জন্য Route:
$routes->post('submit', 'Form::submit');
PUT এবং DELETE রিকোয়েস্টের জন্য Route:
$routes->put('update', 'User::update');
$routes->delete('delete', 'User::delete');
Resourceful কন্ট্রোলারের জন্য Route:
$routes->resource('products');
এটি স্বয়ংক্রিয়ভাবে CRUD (Create, Read, Update, Delete) রুট তৈরি করবে।
URL এর মাধ্যমে ডাইনামিক ডেটা পাঠানোর জন্য প্যারামিটার ব্যবহার করা হয়।
$routes->get('product/(:num)', 'Product::details/$1');
(:num)
: শুধুমাত্র সংখ্যার জন্য প্যারামিটার।$1
: প্রথম প্যারামিটার।$routes->get('user/(:any)/(:num)', 'User::profile/$1/$2');
(:any)
: যেকোনো ধরণের স্ট্রিং বা নম্বর।$1
এবং $2
: প্যারামিটার ক্রমানুসারে পাস হবে।Route গুলোকে গ্রুপে সংগঠিত করা যায়। এটি বড় অ্যাপ্লিকেশনের জন্য খুবই উপযোগী।
$routes->group('admin', function($routes) {
$routes->get('dashboard', 'Admin::dashboard');
$routes->get('users', 'Admin::users');
});
/admin/dashboard
/admin/users
Route ফিল্টার ব্যবহার করে নির্দিষ্ট Route-এ Authentication বা Authorization যাচাই করা যায়।
app/Config/Filters.php
ফাইল থেকে ফিল্টার সংজ্ঞায়িত করুন:
public $aliases = [
'auth' => \App\Filters\AuthFilter::class,
];
$routes->group('dashboard', ['filter' => 'auth'], function($routes) {
$routes->get('home', 'Dashboard::home');
});
Route কনফিগার করার সময় সর্বাধিক নির্দিষ্ট Route উপরে রাখতে হবে। উদাহরণ:
$routes->get('product/edit/(:num)', 'Product::edit/$1');
$routes->get('product/(:num)', 'Product::details/$1');
এতে প্রথমে edit Route কার্যকর হবে এবং তারপর details।
আপনার Route ঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে ব্রাউজারে URL লিখুন। উদাহরণ:
http://localhost/your_project_name/about
CodeIgniter এর Routes সিস্টেম অ্যাপ্লিকেশনকে আরও কার্যকরী এবং ব্যবহারযোগ্য করে তোলে। সঠিকভাবে Route কনফিগার করা আপনার অ্যাপ্লিকেশনের স্ট্রাকচার এবং ইউজার এক্সপেরিয়েন্স উন্নত করতে সাহায্য করে।
Read more